/* 
 * Header file for Plane
 * Programming by SochiX (http://sochix.ru)
 */

#ifndef _PLANE_HPP
#define _PLANE_HPP

#include "rt_object.hpp"
#include "vector3D.hpp"
#include "point3D.hpp"
#include "material.hpp"
#include "../def.hpp"
#include "../graph/color.hpp"
#include <math.h> 


class Plane: public RTobject
{
	private:
	double D; 
	double cosAng;
	Vector3D normalVect;
	public:
	
	//First point position declared in RTobject //A 
	Point3D position2; //B
	Point3D position3; //C
	
	Plane(Point3D,Point3D, Point3D, Material);
   	virtual bool Intersect(Ray& intersectRay, double&);
	virtual Color Trace(Ray& viewRay,Point3D lightPos, double& dist);
	virtual Vector3D GetNormalVect() {return normalVect;}

};

#endif	/* _PLANE_HPP */
